/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package interfacesGraficas.ModeloCombo;

import entidadesNegocio.TipoMaterial;
import java.util.ArrayList;
import java.util.List;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;

/**
 *
 * @author diego
 */
public class ModeloComboBoxTiposMat extends DefaultComboBoxModel {

    private List<TipoMaterial> listaTipos;

    public ModeloComboBoxTiposMat() {
        addElement("Seleccione un tipo");
    }

    public ModeloComboBoxTiposMat(List<TipoMaterial> nuevaLista) {
        listaTipos = nuevaLista;
        addElement("Seleccione un tipo");
        for (TipoMaterial tipomaterial : nuevaLista) {
            addElement(tipomaterial.getNombretipomaterial());
        }
    }

    public void setListaCombo(List<TipoMaterial> nuevaLista) {
        listaTipos = nuevaLista;
        for (TipoMaterial tipomaterial : nuevaLista) {
            addElement(tipomaterial.getNombretipomaterial());
        }
    }

    public ModeloComboBoxTiposMat(ModeloComboBoxTiposMat modelo) {
        addElement("Seleccione un tipo");
        listaTipos = modelo.getListaTipos();
        for (TipoMaterial tipoMaterial : listaTipos) {
            addElement(tipoMaterial.getNombretipomaterial());

        }
    }

    public ModeloComboBoxTiposMat(ComboBoxModel modelo) {
        addElement("Seleccione un tipo");
        listaTipos = ((ModeloComboBoxTiposMat) modelo).getListaTipos();
        for (TipoMaterial tipoMaterial : listaTipos) {
            addElement(tipoMaterial.getNombretipomaterial());

        }
    }

    public TipoMaterial getTipoSeleccionado() {
        TipoMaterial tipoEncontrado = null;
        for (TipoMaterial tipoMaterial : listaTipos) {
            if (tipoMaterial.getNombretipomaterial().equals(super.getSelectedItem().toString())) {
                tipoEncontrado = tipoMaterial;
            }
        }

        return tipoEncontrado;

    }

    public List<TipoMaterial> getListaTipos() {
        if(listaTipos == null){
            listaTipos = new ArrayList<TipoMaterial>();
        }
        return listaTipos;
    }

    public void setTipoSeleccionado(TipoMaterial tipo) {
        if (listaTipos != null) {
            for (TipoMaterial tipoMaterial : listaTipos) {
                if (tipoMaterial.getNombretipomaterial().equals(tipo.getNombretipomaterial())) {
                    setSelectedItem(tipo.getNombretipomaterial());
                }
            }
        }
    }

    public void quitarTipo(TipoMaterial tipoMatSeleccionado) {
        if(listaTipos==null){
            return;
        }
        for (int i = 0; i < listaTipos.size();i++) {
            if(tipoMatSeleccionado.getCodigotipomaterial().equals(listaTipos.get(i).getCodigotipomaterial())){
                listaTipos.remove(i);
                return;
            }
        }
    }
}
